FEXP Solver  1.0.0.0
FEXPConcurency.cpp File Reference
#include "FEXPConcurency.h"
Include dependency graph for FEXPConcurency.cpp:

Macros

#define WAIT_TASK_TIME   20
 
#define PROGRESS_WIDTH   73
 
#define PROGRESS_MAXVL   100
 
#define PROGRESS_INDIC   '*'
 
#define BARCOMPARATOR(to_compare)   ([this]()->bool { return _barrier_state == (to_compare); })
 
#define WAIT(bar_state)   { _cond_var.wait(lock, BARCOMPARATOR(bar_state)); }
 
#define SET_AND_NOTIFY(bar_state)   { _barrier_state = (bar_state); _cond_var.notify_all(); }
 
#define SEMAFOR(counter, value, bar_state)   { if ((counter) == (value)) SET_AND_NOTIFY(bar_state) else WAIT(bar_state) }
 
#define ERROR_WIN_BARRIER   "Error: No suitable version of Windows OS for use win. barrier (Win. ver. 8 and later is required)!!!"
 
#define WIN_SPIN_NUM   -1
 
#define WIN_CONTROL_FLAG   0
 
#define THREAD_INIT_ID   1
 

Macro Definition Documentation

◆ BARCOMPARATOR

#define BARCOMPARATOR (   to_compare)    ([this]()->bool { return _barrier_state == (to_compare); })

◆ ERROR_WIN_BARRIER

#define ERROR_WIN_BARRIER   "Error: No suitable version of Windows OS for use win. barrier (Win. ver. 8 and later is required)!!!"

◆ PROGRESS_INDIC

#define PROGRESS_INDIC   '*'

◆ PROGRESS_MAXVL

#define PROGRESS_MAXVL   100

◆ PROGRESS_WIDTH

#define PROGRESS_WIDTH   73

◆ SEMAFOR

#define SEMAFOR (   counter,
  value,
  bar_state 
)    { if ((counter) == (value)) SET_AND_NOTIFY(bar_state) else WAIT(bar_state) }

◆ SET_AND_NOTIFY

#define SET_AND_NOTIFY (   bar_state)    { _barrier_state = (bar_state); _cond_var.notify_all(); }

◆ THREAD_INIT_ID

#define THREAD_INIT_ID   1

◆ WAIT

#define WAIT (   bar_state)    { _cond_var.wait(lock, BARCOMPARATOR(bar_state)); }

◆ WAIT_TASK_TIME

#define WAIT_TASK_TIME   20

◆ WIN_CONTROL_FLAG

#define WIN_CONTROL_FLAG   0

◆ WIN_SPIN_NUM

#define WIN_SPIN_NUM   -1